/**
 * 多级单位换算器
 * @param {Array} units - 单位列表，包含id、unitName和relationship
 * @param {string} selectedUnitId - 选中的单位ID
 * @param {number} quantity - 选中的数量
 * @returns {string} 格式化的单位说明，如"4大箱1小箱6件，共计256件"
 */
export default function unitRead(units, selectedUnitId, quantity) {
	if(!units||typeof(units)!=="object"){
		return
	}
  // 1. 按relationship降序排列单位（从大到小）
  const sortedUnits = [...units].sort((a, b) => b.relationship - a.relationship);
  
  // 2. 找到基础单位（relationship为1的单位）
  const baseUnit = sortedUnits.find(unit => unit.relationship === 1);
  if (!baseUnit) throw new Error("未找到基础单位");
  
  // 3. 计算总件数（基于基础单位）
  const selectedUnit = units.find(unit => unit.id === selectedUnitId);
  if (!selectedUnit) throw new Error("未找到选中的单位");
  const totalItems = quantity * selectedUnit.relationship;
  
  // 4. 逐级换算为高级单位
  let remainingItems = totalItems;
  const unitCounts = {};
  
  for (const unit of sortedUnits) {
    if (unit.relationship <= 1) continue; // 跳过基础单位
    
    const count = Math.floor(remainingItems / unit.relationship);
    if (count > 0) {
      unitCounts[unit.unitName] = count;
      remainingItems = remainingItems % unit.relationship;
    }
  }
  
  // 如果有剩余，添加基础单位
  if (remainingItems > 0) {
    unitCounts[baseUnit.unitName] = remainingItems;
  }
  
  // 5. 生成格式化的描述
  const unitParts = Object.entries(unitCounts)
    .map(([unitName, count]) => `${count}${unitName}`)
    .join("");
    
  return `${unitParts}，共计${totalItems}${baseUnit.unitName}`;
}
